#include <stdio.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
    pid_t id = fork();
	if(id < 0)
	{
		perror("fork failed");
		exit(1);
	}
	if(id == 0)
	{
		//child
        char* const argv[]={
            "ls",
            "-a",
            "-l",
            NULL
        };
        execv("/bin/ls",argv);
		//如果execv执行成功，下行将不会被执行。
		perror("execl failed");
		exit(1);
	}
	else
	{
		//father
		wait(NULL);//等待子进程结束
		printf("child process finished\n");
	}
    return 0;
}
